package com.hspedu.draw;

import javax.swing.*;
import java.awt.*;

/**
 * @author LiuJinTao
 * @className DrawCircle
 * @date 2024/06/20 16:05
 * @description 演示如何在面板上画一个圆形
 */

public class DrawCircle extends JFrame {// JFrame 窗口(画框) 里面嵌入面板
    // 定义一个面板
    private MyPanel mp = null;

    public static void main(String[] args) {
        new DrawCircle();

    }

    public DrawCircle() {
        // 初始化面板
        mp = new MyPanel();
        // 把面板放入窗口(画框)
        this.add(mp);
        // 设置窗口大小
        this.setSize(800, 600);
        // 当点击窗口的退出，程序结束运行
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);// 可以显示
    }

}

// 1.先定义一个面板 MyPanel，继承一个JPanel类，画图形就在面板上画
class MyPanel extends JPanel {

    // 1.MyPanel 对象是一个面板
    // 2.Graphics g 把 g 理解成一支画笔
    // 3.Graphics 提供很多绘图方法
    @Override
    public void paint(Graphics g) {// 绘图方法
        super.paint(g);// 调用父类的方法完成初始化，
//        System.out.println("paint方法被调用");

        // 演示画出不同的图形

        // 画一个圆
//        g.drawOval(10, 10, 100, 100);

        // 画直线
//        g.drawLine(10, 10, 100, 100);

        // 画矩形
//        g.drawRect(10, 10, 100, 100);

        // 填充矩形
//        g.setColor(Color.blue);// 设置画笔颜色
//        g.fillRect(10, 10, 100, 100);

        // 填充椭圆
//        g.setColor(Color.red);
//        g.fillOval(10, 10, 100, 100);

        // 图片
        // 1.获取图片资源
//        Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/img.png"));
//        g.drawImage(image, 10, 10, 183, 155, this);

        // 字符串
//        g.setColor(Color.green);// 颜色
//        g.setFont(new Font("隶书", Font.BOLD, 50));// 字体
//        g.drawString("刘金涛帅哥", 100, 100);

        // 自定义乌龟
//        g.setColor(Color.black);
//        g.fillOval(190, 100, 40, 40);
//        g.setColor(Color.green);
//        g.fillOval(170, 140, 80, 120);
//        g.setColor(Color.pink);
//        g.fillRect(208, 70, 4, 30);

        // 坦克

        g.setColor(Color.red);
        g.drawLine(400, 90, 400, 150);
        g.setColor(Color.cyan);
        g.fillRect(385, 115, 30, 75);
        g.fillRect(370, 100, 15, 105);
        g.fillRect(415, 100, 15, 105);
        g.setColor(Color.blue);
        g.fillOval(385, 135, 30, 30);
        g.setColor(Color.black);
        g.setFont(new Font("隶书", Font.BOLD, 12));
        g.drawString("俎思玮1号", 370, 125);

    }
}